home *** CD-ROM | disk | FTP | other *** search
-
- {$A+} { Align data }
- {$B-} { Boolean evaluation }
- {$D-} { Debug information }
- {$F-} { Force FAR calls }
- {$G+} { 80286 code }
- {$I-} { I/O checking }
- {$K-} { Smart Callbacks }
- {$L+} { Local symbols }
- {$N-} { 80x87 code }
- {$O-} { Overlays allowed }
- {$P-} { Open parameters }
- {$R-} { Range checking }
- {$S-} { Stack checking }
- {$Q-} { Overflow checking }
- {$T-} { Typed @ operators }
- {$V-} { String VAR checking }
- {$W-} { Windows stack frame for real mode }
- {$X+} { Extended syntax }
- {$Y+} { Symbol reference information }
-
- (*
- * MUSCROLL.H (C header file)
- *
- * Public definitions for application that use the MicroScroll.
- * - Messages
- * - Prototypes for Message API Functions
- * - Notification codes.
- * - Control Styles.
- *
- * Version 1.1, October 1991, Kraig Brockschmidt
- *
- * Converted to a Pascal Unit by Olaf He▀ (CompuServe ID: 100 031, 35 36),
- * January 1993
- *)
-
- UNIT MUSCROLL;
-
- INTERFACE
-
- USES WinTypes;
-
- { Control-specific messages }
- CONST
- MSM_HWNDASSOCIATESET = WM_USER + 1;
- MSM_HWNDASSOCIATEGET = WM_USER + 2;
- MSM_DWRANGESET = WM_USER + 3;
- MSM_DWRANGEGET = WM_USER + 4;
- MSM_WCURRENTPOSSET = WM_USER + 5;
- MSM_WCURRENTPOSGET = WM_USER + 6;
- MSM_FNOPEGSCROLLSET = WM_USER + 7;
- MSM_FNOPEGSCROLLGET = WM_USER + 8;
- MSM_FINVERTRANGESET = WM_USER + 9;
- MSM_FINVERTRANGEGET = WM_USER + 10;
- MSM_CRCOLORSET = WM_USER + 11;
- MSM_CRCOLORGET = WM_USER + 12;
-
- { Notification codes sent via WM_COMMAND from the control. }
- MSN_ASSOCIATEGAIN = 1;
- MSN_ASSOCIATELOSS = 2;
- MSN_RANGECHANGE = 3;
-
-
- { Color indices for MSM_COLORSET/GET and MSCrColorSet/Get }
- MSCOLOR_FACE = 0;
- MSCOLOR_ARROW = 1;
- MSCOLOR_SHADOW = 2;
- MSCOLOR_HIGHLIGHT = 3;
- MSCOLOR_FRAME = 4;
-
- CCOLORS = 5;
-
- { Control specific styles. }
- MSS_VERTICAL = $0001;
- MSS_HORIZONTAL = $0002;
- MSS_NOPEGSCROLL = $0004;
- MSS_TEXTHASRANGE = $0008;
- MSS_INVERTRANGE = $0010;
-
- { Message API Functions }
- (* HWND FAR PASCAL MSHAssociateSet(HWND hWnd, HWND hWndAssociate); *)
- FUNCTION MSHAssociateSet (hWnd, hWndAssociate: hWnd) : hWnd;
-
- (* HWND FAR PASCAL MSHAssociateGet(HWND hWnd); *)
- FUNCTION MSHAssociateGet (hWnd: hWnd) : hWnd;
-
- (* DWORD FAR PASCAL MSDwRangeSet(HWND hWnd, WORD iMin, WORD iMax); *)
- FUNCTION MSDwRangeSet (hWnd: hWnd; wMin, wMax: Word) : LongInt;
-
- (* DWORD FAR PASCAL MSDwRangeGet(HWND hWnd); *)
- FUNCTION MSDwRangeGet (hWnd: hWnd) : LongInt;
-
- (* WORD FAR PASCAL MSWCurrentPosSet(HWND hWnd, WORD iPos); *)
- FUNCTION MSWCurrentPosSet (hWnd: hWnd; wPos: Word) : Word;
-
- (* WORD FAR PASCAL MSWCurrentPosGet(HWND hWnd); *)
- FUNCTION MSWCurrentPosGet (hWnd: hWnd) : Word;
-
- (* BOOL FAR PASCAL MSFNoPegScrollSet(HWND hWnd, BOOL fNoPegScroll); *)
- FUNCTION MSFNoPegScrollSet (hWnd: hWnd; fNoPegScroll: bool) : bool;
-
- (* BOOL FAR PASCAL MSFNoPegScrollGet(HWND hWnd); *)
- FUNCTION MSFNoPegScrollGet (hWnd: hWnd) : bool;
-
- (* BOOL FAR PASCAL MSFInvertRangeSet(HWND hWnd, BOOL fInvertRange); *)
- FUNCTION MSFInvertRangeSet (hWnd: hWnd; fInvertRange: bool) : bool;
-
- (* BOOL FAR PASCAL MSFInvertRangeGet(HWND hWnd); *)
- FUNCTION MSFInvertRangeGet (hWnd: hWnd) : bool;
-
- (* COLORREF FAR PASCAL MSCrColorSet(HWND hWnd, WORD iColor, COLORREF cr); *)
- FUNCTION MSCrColorSet (hWnd: hWnd; wColor: Word; cr: TColorRef) : TColorRef;
-
- (* COLORREF FAR PASCAL MSCrColorGet(HWND hWnd, WORD iColor); *)
- FUNCTION MSCrColorGet (hWnd: hWnd; wColor: Word) : TColorRef;
-
- IMPLEMENTATION
-
- USES WinProcs;
-
- VAR
- pToExitProc : Pointer;
- hLibHandle : THandle;
-
- FUNCTION MSHAssociateSet (hWnd, hWndAssociate: hWnd) : hWnd;
- EXTERNAL 'MUSCROLL' Index 7;
- FUNCTION MSHAssociateGet (hWnd: hWnd) : hWnd;
- EXTERNAL 'MUSCROLL' Index 8;
- FUNCTION MSDwRangeSet (hWnd: hWnd; wMin, wMax: Word) : LongInt;
- EXTERNAL 'MUSCROLL' Index 9;
- FUNCTION MSDwRangeGet (hWnd: hWnd) : LongInt;
- EXTERNAL 'MUSCROLL' Index 10;
- FUNCTION MSWCurrentPosSet (hWnd: hWnd; wPos: Word) : Word;
- EXTERNAL 'MUSCROLL' Index 11;
- FUNCTION MSWCurrentPosGet (hWnd: hWnd) : Word;
- EXTERNAL 'MUSCROLL' Index 12;
- FUNCTION MSFNoPegScrollSet (hWnd: hWnd; fNoPegScroll: bool) : bool;
- EXTERNAL 'MUSCROLL' Index 13;
- FUNCTION MSFNoPegScrollGet (hWnd: hWnd) : bool;
- EXTERNAL 'MUSCROLL' Index 14;
- FUNCTION MSFInvertRangeSet (hWnd: hWnd; fInvertRange: bool) : bool;
- EXTERNAL 'MUSCROLL' Index 15;
- FUNCTION MSFInvertRangeGet (hWnd: hWnd) : bool;
- EXTERNAL 'MUSCROLL' Index 16;
- FUNCTION MSCrColorSet (hWnd: hWnd; wColor: Word; cr: TColorRef) : TColorRef;
- EXTERNAL 'MUSCROLL' Index 17;
- FUNCTION MSCrColorGet (hWnd: hWnd; wColor: Word) : TColorRef;
- EXTERNAL 'MUSCROLL' Index 18;
-
- (* ---- *)
-
- PROCEDURE NewExitProc; FAR;
- { Unload the DLL }
-
- BEGIN
- FreeLibrary (hLibHandle);
- ExitProc := pToExitProc;
- END; { NewExitProc }
-
- (* ---- *)
-
- BEGIN { MUSCROLL }
- { Load the DLL }
- hLibHandle := LoadLibrary ('MUSCROLL.DLL');
-
- IF (hLibHandle < 32) THEN
- BEGIN { Failed to load library }
- MessageBox (0, 'Could not load MUSCROLL.DLL', 'Error', mb_IconStop);
- Halt (0);
- END; { if }
-
- pToExitProc := ExitProc;
- ExitProc := @NewExitProc;
- END. { MUSCROLL }
-
-